/**
 * Created by baidm in 2021/2/7 on 8:42
 */
/**
 * 输入：x=121，输出：true
 * 输入：x=-121，输出：false
 * 输入：x=10,输出：false
 * 输入：x=-101，输出：false
 * 思路：通过取整和取余操作比较整数对应位置的数字
 * @param x
 */
function palindrome(x: number): boolean {
    if (x < 0) return false;
    if (x === 0) return true;
    let div: number = 1, left: number, right: number;
    // 遍历得到最大除数
    while (Math.floor(x / div) >= 10) div = div * 10;
    while (x > 0) {
        left = Math.floor(x / div);
        right = x % 10;
        if (left !== right) return false;
        // 每次循环，去掉x第一位数字和最后一位数字
        x = Math.floor((x % div) / 10);
        // 更新除数，因为去掉了首位和末尾，所以 / 100
        div = Math.floor(div / 100);
    }
    return true
}

console.log(palindrome(10));
console.log(palindrome(121));
console.log(palindrome(-121));
console.log(palindrome(-101));